package chen.web.blog;

import java.util.List;


public interface ArticleManager {

	/**
	 * 发布文章
	 * @param article
	 * @return
	 */
	Article post(Article article);
	
	/**
	 * 假删除
	 * @param article
	 */
	void fakeDelete(Article article);
	
	/**
	 * 恢复假删除的文章
	 * @param article
	 */
	void restore(Article article);
	
	/**
	 * 删除
	 * @param article
	 */
	void delete(Article article);
	
	/**
	 * 更新文章
	 * @param article
	 */
	void update(Article article);
	
	/**
	 * 获取文章
	 * @param id
	 * @return
	 */
	Article get(int id);
	
	List<Article> list(Blog blog, ArchiveTime time, int beginOffset, int count);
	int totalArticle(Blog blog, ArchiveTime time);
	
	List<Article> list(Category category, int beginOffset, int count);
	int totalArticle(Category category);	
	
	List<Article> listFakeDeleted(Blog blog, int beginOffset, int count);
	int totalFakeDeleted(Blog blog);
	
	/**
	 * 增加查看计数
	 */
	void increaseViewCount();
}
